package com.ysu.zyw.tc.components.rpc.httpx.apis; import com.ysu.zyw.tc.base.utils.TcSerializationUtils; import com.ysu.zyw.tc.components.converters.TcDateFormatter; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.Accessors; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.context.embedded.ConfigurableEmbeddedServletContainer; import org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer; import org.springframework.context.annotation.Bean; import org.springframework.format.FormatterRegistry; import org.springframework.http.converter.HttpMessageConverter; import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; import java.util.Date; import java.util.List; @SpringBootApplication @RestController public class TcStubController extends WebMvcConfigurerAdapter implements EmbeddedServletContainerCustomizer { @Override public void addFormatters(FormatterRegistry registry) { registry.addFormatter(new TcDateFormatter()); super.addFormatters(registry); } @Override public void configureMessageConverters(List<HttpMessageConverter<?>> converters) { HttpMessageConverter<?> messageConverter = new MappingJackson2HttpMessageConverter(TcSerializationUtils.OBJECT_MAPPER); converters.add(messageConverter); super.configureMessageConverters(converters); } @Data @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor public static class TcStubs { private int id; private Date now; } @Bean public TcDateFormatter customFormatters() { return new TcDateFormatter(); } @RequestMapping("/getText") public TcStubs stubGet(TcStubs tcStubs) { return tcStubs; } @RequestMapping("/postText") public TcStubs stubPostText(TcStubs tcStubs) { return tcStubs; } @RequestMapping("/postJson") public TcStubs stubPostJson(@RequestBody TcStubs tcStubs) { return tcStubs; } @Override public void customize(ConfigurableEmbeddedServletContainer configurableEmbeddedServletContainer) { configurableEmbeddedServletContainer.setPort(13006); } public static void main(String[] args) { SpringApplication.run(TcStubController.class, args); } }